<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="./lodash.min.js"></script>
</head>
<body>
  <script>
    // Set对象: 自动去除重复的值
    // const s = new Set([1,2,3,5, 3,3,4,2,1])
    // s.add(100)
    // s.add(101)
    // s.forEach((val) => {
    //   console.log(val)
    // })
    // console.log(s.has(100))
    // console.log(s.size)

    // 可以利用set的特性实现数组去重
    // const arr = [1,2,3,4,5,3,2,1,2,3,1]
    // // const set = new Set(arr)
    // const arr1 = [...new Set(arr)]
    // console.log(arr1)


    const o = { o: 'adlfkj', name: 'oo' }
    const arr = [1,2,3,4]

    // map对象：key => value 形式存数据
    // map对象和普通对象的区别:
    // 1. obj 没有顺序，map 是有序的
    // 2. obj 的只能是字符串或symbol，map 的key可以是任意类型
    const map = new Map([
      [11, 22],
      ['aaa', true]
    ])
    map.set(o, '这是对象')
    map.set(arr, '这是数组')
    map.set('aa', 120)
    map.set(1, 'bb')
    map.set(true, 'asdffa')
    console.log(map.get(arr))
    console.log(map)
    map.forEach((val, key) => {
      console.log(key, val)
    })


    // 对象没有顺序，对象的 key 只能是字符串或者 symbol
    // const arr = [1,2,3]
    // const o = { a: 1 }
    // const obj = {
    //   name: 'xxx',
    //   age: 111,
    //   11: 'bbbb',
    //   true: true,
    //   [arr]: 222222,
    //   [o]: 'oooo'
    // }
    // console.log(Object.keys(obj))


  </script>
</body>
</html>